#!/bin/bash

# ***************************************************************************
# * 
# * @file:build_gcov.sh 
# * @author:ebayboy@163.com 
# * @date:2020-08-21 09:19 
# * @version 1.0  
# * @description: Shell script 
# * @Copyright (c)  all right reserved 
#* 
#**************************************************************************/ 

PROJECT=test_makefile

# 1. comile(.cpp) ->			.gcno
# 2. ./${PROJECT} ->			.gcda
# 3. gcov ${PROJECT}.cpp ->	.gcov
# 4. lcov (.gcov) ->			.info
# 5. gen -o info   ->			.html

echo "1. 编译生成结点文件.gcno:"
#gcc编译——>产生目标文件test、gcov的结点文件 test.gcno
#test   test.c   test.gcno
#./build_makefile.sh exe

echo "2. 运行生成覆盖信息文件.gcda:"
#运行目标文件——>生成运行覆盖信息 test.gcda
./${PROJECT}
 
#${PROJECT}.c.gcov
echo "#3. gcov 产生报告信息:"
CMD="gcov ${PROJECT}.cpp"
eecho $CMD
eval ${CMD}

echo "4. lcov：格式化"
#test.c.gcov ，输出到 test.info文件
#-d: directory
#-t “name” :指目标文件，这里 是 test
CMD="lcov -d . -t '${PROJECT}' -o '${PROJECT}.info' -b . -c"
echo $CMD
eval $CMD

echo "#5 生成html报告:"
#genhtml：根据信息文件（.info）产生html 文档，输出到一个文件夹中
CMD="genhtml -o gcovdir ${PROJECT}.info"
echo $CMD
eval $CMD

exit 0

